package com.xuerhua.yxt.service;

import java.util.List;

import com.xuerhua.yxt.common.RspResult;
import com.xuerhua.yxt.model.TeacherExchangeCourseApply;
import com.xuerhua.yxt.model.TeacherInfo;
import com.xuerhua.yxt.page.Page;
import com.xuerhua.yxt.reqVo.TeacherExchangeCourseApplyItemReqVO;
import com.xuerhua.yxt.reqVo.TeacherExchangeCourseApplyReqVO;
import com.xuerhua.yxt.view.TeacherExchangeCourseApplyItemView;
import com.xuerhua.yxt.view.TeacherExchangeCourseApplyView;

public interface ITeacherChangeCourseApplyService {

	int insertSelective(TeacherExchangeCourseApply record);

	TeacherExchangeCourseApply selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(TeacherExchangeCourseApply record);

    List<TeacherExchangeCourseApplyView> selectPendingListByPage(Page<TeacherExchangeCourseApplyView> page);
    
    List<TeacherExchangeCourseApplyView> selectRejectListByPage(Page<TeacherExchangeCourseApplyView> page);
    
    List<TeacherExchangeCourseApplyView> selectAgreeListByPage(Page<TeacherExchangeCourseApplyView> page);
    
    TeacherExchangeCourseApplyView selectViewById(Integer id);
    
    int addApply(TeacherExchangeCourseApplyReqVO record, TeacherInfo teacher);
    
    RspResult updateAudit(TeacherExchangeCourseApplyReqVO record, TeacherInfo teacher);
    
    RspResult updateTeacherAudit(TeacherExchangeCourseApplyItemReqVO record, TeacherInfo teacher);
    
    List<TeacherExchangeCourseApplyView> selectListByPage(Page<TeacherExchangeCourseApplyView> page);
    
    List<TeacherExchangeCourseApplyItemView> selectItemListByPage(Page<TeacherExchangeCourseApplyItemView> page);
    
    List<TeacherExchangeCourseApplyItemView> selectReportListByPage(Page<TeacherExchangeCourseApplyItemView> page);
    
    List<TeacherExchangeCourseApplyItemView> selectListByApplyId(Integer applyId);
    
    TeacherExchangeCourseApplyItemView selectByItemId(Integer itemId);
    
}
